Virtual machines are known in the prior art. In general, a virtual machine appears to be a real physical computer system to a computer user, or to a program developed to run on a computer system. However, the virtual machine is not constrained to the physical specifications of the computer hosting the virtual machine; but rather the virtual machine is logical in nature with computing resources (e.g. virtual memory) that are determined by the system administrator responsible for defining the virtual machine.
Accordingly, a great deal of flexibility exists for the system administrator whereby the physical resources of a computing system are utilized more efficiently by defining virtual operating systems that are appropriately structured for the specific workloads of the owning enterprise. To this end, a single physical machine may host one or more virtual operating systems, each virtual operating system comprising one or more virtual machines.
A virtual machine has the further functionality of hosting a real operating system. That is, a single virtual machine may host a guest operating system creating the illusion that an operating system is running on its own physical computer. This is a very powerful concept in that it facilitates efficient software testing.
For example, several dozen departments may be concurrently testing different software products, each in the early stages of development with a high potential of encountering serious errors which would disable an entire operating system. If all of these departments were running on a single real system, each disabling error for one software product may bring testing to a screeching halt for all other software products being tested on the system.
In the virtual world, a disabling error brings down only the guest operating system running the failing software product. All other software testing proceeds, as they each are running on their own unique guest operating system running under a unique virtual machine.
In order to further increase the efficiency of computing systems additional flexibility evolved over time whereby a plurality of virtual machines spanning one or more virtual operating systems running on one or more physical computing systems could be defined. This facilitated an easy migration to additional computing power as the work load of an enterprise increased over time. Such a network of virtual machines is herein defined as a “virtual data center complex”
It is apparent, with a plurality of virtual machines defined over a plurality of physical computing systems, that a sophisticated performance monitoring capability will be required in order for the system administrators to properly tune the virtual data center complex on an ongoing basis. Various performance monitor programs catering to the needs of the system administrator are known in the prior art, such as IBM's® product shipped with IBM's Virtual Machine (VM) operating system.
However, virtual machine performance monitor products in the prior art are deficient in that they cater to the needs of the system administrator. As testing work loads have increased in large software development enterprises, it has become increasingly important that users of the virtual machines also have some performance monitoring capability. In this way, the general user (i.e. not the system administrator responsible for the overall operation of the virtual complex) has necessary tools to ensure the timely execution of his or her individual projects.
For example, with adequate and timely knowledge of one virtual operating system's performance, a user may decide to target a different virtual operating system for a given work load, thereby expediting his or her individual project, as well as helping to balance the overall workload by choosing a virtual operating system with greater availability of computing resources.
Furthermore, the general user may discover that there are performance issues or problems with a given software product by detecting the change in a virtual operating system's performance statistics attendant with the execution of the project software. Further still, by capturing performance screens during project execution, the general user may accumulate helpful documentation to share with the system administrator in those cases where the virtual data center complex is not tuned in an optimal manner for the enterprise.
Another shortcoming with prior art virtual machine performance monitors is that they are very restrictive with respect to receiving performance information only from previously predetermined systems. For example, if a user or administrator is currently logged on to one virtual machine residing on one physical processor, it may be necessary to logon to a second virtual machine on a different physical processor in order to gain access to the required performance information. This process of logging off of one virtual machine and logging on to a second virtual machine in order to obtain performance information is very inconvenient and impacts the productivity of users and administrators.
Accordingly, there is a great need for an enhanced remote performance monitor operable within a virtual data center complex that can facilitate the retrieval of remote performance information by the general user in a manner that is convenient, efficient, and does not jeopardize the security and integrity of the virtual data center complex.